package Negocio;

import javax.persistence.*;
import DTO.ViajeOrigenSucursalVO;
import SRV.SucursalSRV;

@Entity
@DiscriminatorValue("OrigenSucursal")
public class ViajeOrigenSucursal extends Viaje
{
	@Column(name="direOrigen")
	private String direccionOrigen;
	
	@Column(name="codPosOrigen")
	private String codigoPostalOrigen;
	
	@Column(name="localidadOrigen")
	private String localidadOrigen;
	
	@Column(name="provOrigen")
	private String provinciaOrigen;	
	
	@OneToOne
	@JoinColumn(name="idSucDestino")
	private Sucursal destino;
	
	public ViajeOrigenSucursal(float distancia, String detalle, String direccionOrigen, String codigoPostalOrigen, 
		String localidadOrigen, String provinciaOrigen, Sucursal destino) 
	{
		super(distancia, detalle);
		this.direccionOrigen = direccionOrigen;
		this.codigoPostalOrigen = codigoPostalOrigen;
		this.localidadOrigen = localidadOrigen;
		this.provinciaOrigen = provinciaOrigen;
		this.destino = destino;
	}

	public ViajeOrigenSucursal toBusiness(ViajeOrigenSucursalVO viajeVO){
	    Sucursal sucursalDestino = new Sucursal();
	    SucursalSRV daoSuc = new SucursalSRV();
	 
	    sucursalDestino = daoSuc.getSucursal(viajeVO.getDestino());
	    
	    ViajeOrigenSucursal devuelto = new ViajeOrigenSucursal(viajeVO.getDistancia(), viajeVO.getDetalle(),
		    viajeVO.getDireccionOrigen(), viajeVO.getCodigoPostalOrigen(), viajeVO.getLocalidadOrigen(), 
		    viajeVO.getProvinciaOrigen(), sucursalDestino);
	    
	    return devuelto;
	}
	
	public ViajeOrigenSucursal() {}

	public String getDireccionOrigen() {
		return direccionOrigen;
	}

	public void setDireccionOrigen(String direccionOrigen) {
		this.direccionOrigen = direccionOrigen;
	}

	public String getCodigoPostalOrigen() {
		return codigoPostalOrigen;
	}

	public void setCodigoPostalOrigen(String codigoPostalOrigen) {
		this.codigoPostalOrigen = codigoPostalOrigen;
	}

	public String getLocalidadOrigen() {
		return localidadOrigen;
	}

	public void setLocalidadOrigen(String localidadOrigen) {
		this.localidadOrigen = localidadOrigen;
	}

	public String getProvinciaOrigen() {
		return provinciaOrigen;
	}

	public void setProvinciaOrigen(String provinciaOrigen) {
		this.provinciaOrigen = provinciaOrigen;
	}

	public Sucursal getDestino() {
		return destino;
	}

	public void setDestino(Sucursal destino) {
		this.destino = destino;
	}
	
	@Override
	public boolean sosViajeInterSucursal() {
		return false;
	}

	@Override
	public boolean sosViajeOrigenSucursal() {
		return true;
	}

	@Override
	public boolean sosViajeSucursalDestino() {
		return false;
	}
	
	public ViajeOrigenSucursalVO toVO() {
		ViajeOrigenSucursalVO viajeVO = new ViajeOrigenSucursalVO(getIdViaje(), getDistancia(), getDetalle(), getDireccionOrigen(), getCodigoPostalOrigen(),
				getLocalidadOrigen(), getProvinciaOrigen(), getDestino().getIdSucursal());
		return viajeVO;
	}
}
